iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
自我挑戰組

每日LeetCode解題紀錄系列 第 7

LeetCode解題 Day07

  • 分享至 

  • xImage
  •  

206. Reverse Linked List

https://leetcode.com/problems/reverse-linked-list/


題目解釋

你會得到一個鏈結串列,把它反過來吧

Example

https://i.imgur.com/LDxaxIV.png


解法

今天是很基本的題目,是資訊工程系大一就會學到的東西,所以今天就用超新手向的方式來寫這篇吧!

程式碼:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        
        current = head
        previous = None
        
        while current:
            temp = current.next
            current.next = previous
            previous = current
            current = temp
            
        return previous

https://i.imgur.com/IGmw0SU.png

  1. 首先要想想,我們現在站在節點1上面,如果把指向節點2的節點1改成指向NULL 的話,那我們就沒辦法去到節點2了,所以我們需要一個東西先把節點2存起來。
temp = current.next
  1. 接著,開始把現在的位置節點1改成指向NULL,並把目前站著的位置記錄起來
current.next = previous
previous = current
  1. 最後,我們往前一步站到剛剛存起來的下一個點
current = temp

看文字說明覺得不夠的人,就看看下面連結裡的動畫吧
動畫連結


閒聊

/images/emoticon/emoticon56.gif


上一篇
LeetCode解題 Day06
下一篇
LeetCode解題 Day08
系列文
每日LeetCode解題紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言